// // src/renderer/utils/webSocketManager.ts
// import { ref } from "vue";
// import { useStoreTemplate } from "@store/template";
// const socket = ref(null); // 创建一个响应式引用来存储 WebSocket 实例
// const isConnected = ref(false); // 标记 WebSocket 是否已连接
// let heartbeatInterval = null; // 定义心跳定时器
// let retryInterval = 2000; // 初始重试间隔为1秒
// let retryTimeout = null; // 定义重试定时器
// const connect = () => {
//     const store = useStoreTemplate(); // 创建 store 实例
//     if (socket.value && isConnected.value) {
//         console.log("WebSocket 已连接，无需重复连接");
//         return; // 如果已连接，则不再创建新的连接
//     }
//     console.log("尝试连接 WebSocket...");
//     // 创建新的 WebSocket 实例
//     socket.value = new WebSocket("ws://127.0.0.1:8092/websocket/1");
//     // 监听 WebSocket 打开事件
//     socket.value.addEventListener("open", () => {
//         console.log("WebSocket连接已打开");
//         isConnected.value = true; // 更新连接状态
//         clearTimeout(retryTimeout); // 清除重试定时器
//         retryTimeout = null; // 清空重试定时器
//         // 启动心跳定时器
//         heartbeatInterval = setInterval(() => {
//             if (socket.value && isConnected.value) {
//                 socket.value.send(JSON.stringify({ serviceType: "ping" })); // 发送心跳消息
//                 console.log("发送心跳消息");
//             }
//         }, 30000); // 每30秒发送一次
//     });
//     //添加发送消息方法
//     socket.value.sendMessage = (message) => {
//         if (socket.value && isConnected.value) {
//             socket.value.send(message); // 发送消息
//         }
//     };
//     // 监听 WebSocket 消息事件
//     socket.value.addEventListener("message", (event) => {
//         const message = JSON.parse(event.data); // 解析消息
//         // 处理消息逻辑
//         store.handleSocketMessage(message); // 调用 action 将消息放入 store
//     });



//     // 监听 WebSocket 关闭事件
//     socket.value.addEventListener("close", () => {
//         console.log("WebSocket连接已关闭");
//         isConnected.value = false; // 更新连接状态
//         //进行重连
//         retryConnection(); // 尝试重连
//     });

//     // 监听 WebSocket 错误事件
//     socket.value.addEventListener("error", (error) => {
//         console.error("WebSocket发生错误:", error);
//         clearInterval(heartbeatInterval); // 清除心跳定时器
//         retryConnection(); // 尝试重连
//     });
// };
// const retryConnection = () => {
//     console.log("尝试重连...");
//     console.log(retryTimeout);
//     if (retryTimeout) return; // 如果已经在重试，则不再重试
//     retryTimeout = setInterval(() => {
//         console.log(`尝试重新连接 WebSocket，等待 1 秒...`);
//         connect(); // 尝试重新连接
//     }, 1000);
// };
// const closeConnection = () => {
//     if (socket.value) {
//         socket.value.close(); // 关闭 WebSocket 连接
//         socket.value = null; // 清空 socket 实例
//         isConnected.value = false; // 更新连接状态
//         clearInterval(heartbeatInterval); // 清除心跳定时器
//     }
// };

// export { socket, isConnected, connect, closeConnection };